Object-based audio-visual terminal and bitstream structure

ABSTRACT

As information to be processed at an object-based video or audio-visual (AV) terminal, an object-oriented bitstream includes objects, composition information, and scene demarcation information. Such bitstream structure allows on-line editing, e.g. cut and paste, insertion/deletion, grouping, and special effects. In the interest of ease of editing, AV objects and their composition information are transmitted or accessed on separate logical channels (LCs). Objects which have a lifetime in the decoder beyond their initial presentation time are cached for reuse until a selected expiration time.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.13/345,208, filed Jan. 6, 2012, which is a continuation of U.S. patentapplication Ser. No. 12/482,292, filed Jun. 10, 2009, which is acontinuation of U.S. patent application Ser. No. 11/688,368, filed Mar.20, 2007 which is a divisional of U.S. patent application Ser. No.09/367,433, filed Jan. 13, 2000, which is a national stage ofInternational Application PCT/US98/02668, filed Feb. 13, 1998, whichclaims the benefit of U.S. Provisional Application Ser. No. 60/037,779,filed Feb. 14, 1997, each of which is incorporated by reference in itsentirety herein, and from which priority is claimed.

TECHNICAL FIELD

This invention relates to the representation, transmission, processingand display of video and audio-visual information, more particularly ofobject-based information.

BACKGROUND OF THE INVENTION

Image and video compression techniques have been developed which, unliketraditional waveform coding, attempt to capture high-level structure ofvisual content. Such structure is described in teams of constituent“objects” which have immediate visual relevancy, representing familiarphysical objects, e.g. a ball, a table, a person, a tune or a spokenphrase. Objects are independently encoded using a compression techniquethat gives best quality for each object. The compressed objects are sentto a terminal along with composition information which tells theterminal where to position the objects in a scene. The terminal decodesthe objects and positions them in the scene as specified by thecomposition information. In addition to yielding coding gains,object-based representations are beneficial with respect to modularity,reuse of content, ease of manipulation, ease of interaction withindividual image components, and integration of natural, camera-capturedcontent with synthetic, computer-generated content.

SUMMARY OF THE INVENTION

In a preferred architecture, structure or format for information to beprocessed at an object-based video or audio-visual (AV) terminal, anobject-oriented bitstream includes objects, composition information, andscene demarcation information. The bitstream structure allows on-lineediting, e.g. cut and paste, insertion/deletion, grouping, and specialeffects.

In the preferred architecture, in the interest of ease of editing, AVobjects and their composition information are transmitted or accessed onseparate logical channels (LCs). The architecture also makes use of“object persistence”, taking advantage of some objects having a lifetimein the decoder beyond their initial presentation time, until a selectedexpiration time.

BRIEF DESCRIPTION OF THE DRAWING

FIG. 1 is a functional schematic of an exemplary object-basedaudio-visual terminal.

FIG. 2 a is a schematic of an exemplary object-based audio-visualcomposition packet.

FIG. 2 b is a schematic of an exemplary object-based audio-visual datapacket.

FIG. 2 c is a schematic of an exemplary compound composition packet.

FIG. 3 is a schematic of exemplary node and scene descriptioninformation using composition.

FIG. 4 is a schematic of exemplary stream-node association information.

FIG. 5 is a schematic of exemplary node/graph update information using ascene.

FIG. 6 is a schematic of an exemplary audio-visual terminal design.

FIG. 7 is a schematic of an exemplary audio-visual system controller inthe terminal according to FIG. 6.

FIG. 8 is a schematic of exemplary information flow in the controlleraccording to FIG. 7.

DETAILED DESCRIPTION

An audio-visual (AV) terminal is a systems component which isinstrumental in forming, presenting or displaying audio-visual content.This includes (but is not limited to) end-user terminals with a monitorscreen and loudspeakers, as well server and mainframe computerfacilities in which audio-visual information is processed. In an AVterminal, desired functionality can be hardware-, firmware- orsoftware-implemented. Information to be processed may be furnished tothe terminal from a remote information source via a telecommunicationschannel, or it may be retrieved from a local archive, for example. Anobject-oriented audio-visual terminal more specifically receivesinformation in the form of individual objects, to be combined intoscenes according to composition information supplied to the terminal.

FIG. 1 illustrates such a terminal, including a de-multiplexer (DMUX) 1connected via a logical channel LC0 to a system controller or“executive” 2 and via logical channels LC1 through LCn to a buffer 3.The executive 2 and the buffer 3 are connected to decoders 4 which inturn are connected to a composer unit 5. Also, the executive 2 isconnected to the composer unit 5 directly, and has an external input foruser interaction, for example.

In the preferred AV architecture, the AV objects and their compositioninformation are transmitted or accessed on separate logical channels.The DMUX receives the Mux2 layer from the lower layers andde-multiplexes it into logical channels. LC0 carries compositioninformation which is passed on to the executive. The AV objects receivedon other logical channels are stored in the buffer to be acted upon bythe decoders. The executive receives the composition information, whichincludes the decoding and presentation time stamps, and instructs thedecoders and composer accordingly.

The system handles object composition packets (OCP) and object datapackets (ODP). A composition packet contains an object's ID, time stampsand the “composition parameters” for rendering the object. An objectdata packet contains an object ID, an expiration time stamp in case ofpersistent objects, and object data.

Preferably, any external input such as user interaction is converted toOCP and/or ODP before it is presented to the executive. There is no needfor headers in a bitstream delivered over a network. However, headersare required when storing an MPEG4 presentation in a file.

FIGS. 2 a and 2 b illustrate the structure of composition and datapackets in further detail. Relevant features are as follows:

-   Object ID is composed of object type and object number. The default    length of the Object ID is 2 bytes, including ten bits for the    object number and 6 for the object type (e.g. text, graphics, MPEG2    VOP, compound object). An extensible code is used to accommodate    more than 1023 objects or more than 31 object types. The following    convention will be adhered to: a value of 0b111111 in the first six    bits of the Object ID corresponds to 31 plus the value of the byte    immediately following the ObjectID; a value of 0b11.1111.1111 in the    least significant 10 bits of the Object ID corresponds to 1023 plus    the value of the two bytes immediately following the Object ID    (without counting the object type extension bytes, if present). The    following object types are defined:

Composition Objects (16-bit object IDs) 0X0000 scene configurationobject 0X0001 node hierarchy specification 0X0002 stream-nodeassociation 0X0003 node/scene update 0X0004 compound object

Object Data (object type, 6 most significant bits) 0b00.0010 text0b00.0011 MPEG2 VOP (rectangular VOP)

-   Persistent Objects (PO) are objects that should be saved at the    decoder for use at a later time. An expiration time stamp (ETS)    gives the life of a PO in milliseconds. A PO is not available to the    decoder after ETS runs out. When a PO is to be used at a later time    in a scene, only the corresponding composition information needs to    be sent to the AV terminal.-   Decoding Time Stamp (DTS) indicates the time an object (access unit)    should be decoded by the decoder.-   Presentation Time Stamp (PTS) indicates the time an object (access    unit) should be presented by the decoder.-   Lifetime Time Stamp (LTS) gives the duration (in milliseconds) an    object should be displayed in a scene. LTS is implicit in some    cases, e.g. in a video sequence where a frame is displayed for    1/frame-rate or until the next frame is available, whichever is    larger. An explicit LTS is used when displaying graphics and text.    An AV object should be decoded only once for use during its life    time.-   Expiration Time Stamp (ETS) is specified to support the notion of    object persistence. An object, after it is presented, is saved at    the decoder (cache) until a time given by ETS. Such an object can be    used multiple times before ETS runs out. A PO with an expired ETS is    no longer available to the decoder.-   Object Time Base (OTB) defines the notion of time of a given AV    object encoder. Different objects may belong to different time    bases. The AV terminal adapts these time bases to the local one, as    specified in the MSDL VM.-   Object Clock Reference (OCR) can be used if necessary to convey the    speed of the OTB to the decoder. By this mechanism, OTBs can be    recovered/adapted at the AV terminal.-   Composition Parameters are used to compose a scene (place an object    in a scene). These include displacement from the upper left corner    of the presentation frame, rotation angles, zooming factors, etc.-   Priority indicates the priority of an object for transmission,    decoding, and display. MPEG4 supports 32 levels of priority. Lower    numbers indicate higher priorities.-   Persistence Indicator (PT) indicates whether an object is    persistent,-   Continuation Indicator (CI) indicates the end of an object in the    current packet (or continuation).-   Object Grouping facilitates operations to be applied to a set of    objects with a single operation. Such a feature can be used to    minimize the amount of composition information sent, as well as to    support hierarchical scene composition based on independent    sub-scenes. The composer manipulates the component objects as a    group. The structure of a compound composition packet (CCP) is shown    in FIG. 2 c.-   Bitstream Structure includes object composition packets for    describing the composition and controlling the presentation of those    packets, and object data packets that contain the data for the    objects. A scene is composed by a set of composition packets. The    bitstream supports representation of scenes as a hierarchy by using    compound composition objects (CCP), also known as node hierarchy. A    CCP allows combining composition objects to create complex    audio-visual scenes.-   Object-Data Packet:    -   ObjectID—min (default) 10 bits    -   CI and PI could be combined:        -   00—begin non-persistent        -   01—begin persistent        -   10—continuation        -   11—end of object            Priority: 5 bits, present only if CI/PI is 0b00 or 0b01            ETS: 30 bits, present if CI/PI is 0b01            For prediction-based video coding, VOP_type is indicated by            two bits (00 (I), 01 (P), 10 (B), 11 (PB)), facilitating            editing.

Object_data_packet{  ObjectiID 16 bits + any extensions;  CIPI 2 bits if (CIPI <= 1){  Priority 5 bits  if (object type is MPEG VOP)    (anyprediction based compression)   VOP_type    2 bits  }  if (CIPI == 1) ETS 28 bits  ObjectData }

-   Object Composition Packet

Object_composition_packet{  ObjectID   16 bits + any extensions OCR_Flag   1 bit  Display_Timers_Flag 1 bit  DTS   30 bits  if(OCR_Flag)   OCR   30 bits  if (Display_Timers_Flag) {   PTS   30 bits  LTS   28 bits  }  Composition parameters; }

-   Composition Parameters are defined in section 2 of MSDL Verification    Model, MPEG N1483, Systems Working Draft V2.0, the disclosure of    which is incorporated herein by reference.

Composition_pararneters(  visibility 1 bit   composition_ order 5 bits  number_of_motion_sets 2 bits   x_delta_0   12 bits   y_delta_0   12bits   for (i = 1; i <= number_of_motion_sets; i++){    x_delta_i   12bits    y_delta_i   12 bits   } }

-   Compound Composition Packet

Compound_composition_packet{  ObjectID 16 bits  PTS 30 bits  LTS 28 bits Composition_parameters  ObjectCount 8 bits  for (i = 0; i <ObjectCount; i++){ Object_composition_packet;  } }

-   Scene Configuration Packet (SCP) is used to change reference scene    width, height, to flush the buffer, and other configuration    functions. The object type for SCPs is 0b00.0000. This allows for    1024 different configuration packets. The object number    0b00.0000.0000 (object ID 0X0000) is defined for use with flushing    the terminal buffers.

Composition Control for Buffer Management (Object ID 0x0000)

AV terminal buffers are flushed using Flush_Cache and Scene_Updateflags. When using hierarchical scene structure, the current scene graphis flushed and the terminal loads the new scene from the bitstream. Useof flags allows for saving the current scene structure instead offlushing it. These flags are used to update the reference scene widthand height whenever a new scene begins. If the Flush_Cache_Flag is set,the cache is flushed, removing the objects (if any). IfScene_Update_Flag is set, there are two possibilities: (i)Flush_Cache-Flag is set, implying that the objects in the cache will nolonger be used; (ii) Flush_Cache_Flag is not set, the new scene beingintroduced (an editing action on the bitstream) splices the currentscene and the objects in the scene will be used after the end of the newscene. The ETS of the objects, if any, will be frozen for the durationof the new scene introduced. The beginning of the next scene isindicated by another scene configuration packet.

Scene_configuration packet{  ObjectID   16 bits (OXOOOO)  Flush_Cache_Flag 1 bit   Scene_Update_Flag 1 bit   if(Scene_Update_Flag){    ref_scene_width 12 bits    ref_scene_height 12bits   } }

Composition Control for Scene Description (Object ID 0x0001)

A hierarchy of nodes is defined, describing a scene. The sceneconfiguration packets can also be used to define a scene hierarchy thatallows for a description of scenes as a hierarchy of AV objects. Eachnode in such a graph is a grouping of nodes that groups the leavesand/or other nodes of the graph into a compound AV object. Each node(leaf) has a unique ID followed by its parameters as shown in FIG. 3.

Composition Control for Stream-Node Mapping (Object ID 0x0002)

As illustrated by FIG. 4, table entries associate the elementary objectstreams in the logical channels to the nodes in a hierarchical scene.The stream IDs are unique, but not the node IDs. This implies that morethan one stream can be associated with the same node.

Composition Control for Scene Updates (Object ID 0x0003)

FIG. 5 illustrates updating of the nodes in the scene hierarchy, bymodifying the specific parameters of the node. The graph itself can beupdated by adding/deleting the nodes in the graph. The update type inthe packet indicates the type of update to be performed on the graph.

Architectural Embodiment

The embodiment described below includes an object-based AV bitstream anda terminal architecture. The bitstream design specifies, in a binaryformat, how AV objects are represented and how they are to be composed.The AV terminal structure specifies how to decode and display theobjects in the binary bitstream.

AV Terminal Architecture

Further to FIG. 1 and with specific reference to FIG. 6, the input tothe de-multiplexer 1 is an object-based bitstream such as an MPEG-4bitstream, consisting of AV objects and their composition informationmultiplexed into logical channels (LC). The composition of objects in ascene can be specified as a collection of objects with independentcomposition specification, or as a hierarchical scene graph. Thecomposition and control information is included in LC0. The controlinformation includes control commands for updating scene graphs, resetdecoder buffers etc. Logical channels 1 and above contain object date.The system includes a controller (or “executive”) 2 which controls theoperation of the AV terminal.

-   The terminal further includes input buffers 3, AV object decoders 4,    buffers 4′ for decoded data, a composer 5, a display 6, and an    object cache 7. The input bitstream may be read from a network    connection or from a local storage device such as a DVD, CD-ROM or    computer hard disk. LC0 containing the composition information is    fed to the controller. The DMUX stores the objects in LC1 and above    at the location in the buffer specified by the controller. In the    case of network delivery, the encoder and the stream server    cooperate to ensure that the input object buffers neither overflow    nor underflow. The encoded data objects are stored in the input data    buffers until read by the decoders at their decoding time, typically    given by an associated decoding timestamp.-   Before writing a data object to the buffer, the DMUX removes the    timestamps and other headers from the object data packet and passes    them to the controller for signaling of the appropriate decoders and    input buffers. The decoders, when signaled by the controller, decode    the data in the input buffers and store them in the decoder output    buffers. The AV terminal also handles external input such as user    interaction.

In the object cache 7, objects are stored for use beyond their initialpresentation time. Such objects remain in the cache even if theassociated node is deleted from the scene graph, but are removed onlyupon the expiration of an associated time interval called the expirationtime stamp. This feature can be used in presentations where an object isused repeatedly over a session. The composition associated with suchobjects can be updated with appropriate update messages. For example,the logo of the broadcasting station can be downloaded at the beginningof the presentation and the same copy can be used for repeated displaythroughout a session. Subsequent composition updates can change theposition of the logo on the display. Objects that are reused beyondtheir first presentation time may be called persistent objects.

System Controller (SC)

The system controller controls decoding and playback of bitstreams onthe AV terminal. At startup, from user interaction or by looking for asession at default network address, the SC first initializes the DMUX toread from a local storage device or a network port. The control logic isloaded into the program RAM at the time of initialization. Theinstruction decoder reads the instructions from the program and executesthem. Execution may involve reading the data from the input buffers(composition or external data), initializing the object timers, loadingor updating the object tables to the data RAM, loading object timers, orcontrol signaling.

FIG. 7 shows the system controller in further detail. The DMUX reads theinput bitstream and feeds the composition data on LC0 to the controller.The composition data begins with the description of the first scene inthe AV presentation. This scene can be described as a hierarchicalcollection of objects using compound composition packets, or as acollection of independent object composition packets. A table thatassociates the elementary streams with the nodes in the scenedescription immediately follows the scene description. The controllerloads the object IDs (stream IDs) into object list and render list whichare maintained in the data RAM. The render list contains the list ofobjects that are to be rendered on the display device. An object that isdisenabled by user interaction is removed from the render list. A nodedelete command that is sent via a composition control packet causes thedeletion of the corresponding object IDs from the object list. The nodehierarchy is also maintained in the data RAM and updated whenever acomposition update is received.

The composition decoder reads data from the composition and externaldata buffer and converts them into a format understood by theinstruction decoder. The external input includes user interaction toselect objects, disenable and enable objects and certain predefinedoperations on the objects. During the execution of the program, twolists are formed in the data RAM. The object list, containing a list ofobjects (object IDs) currently handled by the decoders and a renderlist, containing the list of active objects in the scene. These listsare updated dynamically as the composition information is received. Forexample, if a user chooses to hide an object by passing a command viathe external input, the object is removed from the render list untilspecified by the user. This is also how external input is handled by thesystem. Whenever there is some external interaction, the compositiondecoder reads the external data buffer and performs the requestedoperation.

The SC also maintains timing for each AV object to signal the decodersand decoder buffers of decoding and presentation time. The timinginformation for the AV objects is specified in terms of its time-base.The terminal uses the system clock to convert an object's time base intosystem time. For objects that do not need decoding, only presentationtimers are necessary. These timers are loaded with the decoding andpresentation timestamps for that AV object. The controller obtains thetimestamps from the DMUX for each object. When a decoding timer for anobject runs out, the appropriate decoder is signaled to read data fromthe input buffers and to start the decoding process. When a presentationtimer runs out, the decoded data for that object is transferred to theframe buffer for display. A dual buffer approach could be used to allowwriting to a frame buffer while the contents of the second buffer aredisplayed on the monitor. The instruction decoder can also reset theDMUX or input buffers by signaling a reset, which initializes them tothe default state.

Information Flow in the Controller

FIG. 8 shows the flow of information in the controller. To keep thefigure simple, the operations performed by the instruction decoder areshown in groups. The three groups respectively concern object propertymodifications, object timing, and signaling.

Object Property Modifications

These operations manipulate the object IDs, also called elementarystream IDs. When a scene is initially loaded, a scene graph is formedwith the object IDs of the objects in the scene. The controller alsoforms and maintains a list of objects in the scene (object list) andactive objects in the object from the render list. Other operations setand update object properties such as composition parameters when theterminal receives a composition packet.

Object Timing

This group of operations deals with managing object timers forsynchronization, presentation, and decoding. An object's timestampspecified in terms of its object time base is converted into system timeand the presentation and decoding time of that object are set. Theseoperations also set and reset expiration timestamps for persistentobjects.

Signaling

Signaling operations control the over-all operation of the terminal.Various components of the terminal are set, reset and operated bycontroller signaling. The controller checks the decoding andpresentation times of the objects in the render list and signals thedecoders and presentation frame buffers accordingly. It also initializesthe DEMUX for reading from a network or a local storage device. At theinstigation of the controller, decoders read the data from the inputbuffers and pass the decoded data to decoder output buffers. The decodeddata is moved to the presentation device when signaled by thecontroller.

We claim:
 1. A method for processing object-based data at a receiver togenerate an arrangement of the data, comprising: (a) receiving in a databit stream at least one object and composition information for theobject; (b) locally storing the at least one object; (c) processing thereceived composition information to compose an arrangement using the atleast one stored object; and (d) generating the composed arrangement. 2.The method of claim 1, wherein the at least one object includes at leastone audio object.
 3. The method of claim 1, wherein the at least oneobject includes at least one audiovisual/video object.
 4. The method ofclaim 1, wherein the at least one object includes at least two objects.5. The method of claim 4, wherein the composition information is for atleast one of the at least two object.
 6. The method of claim 1, furthercomprising the step of presenting the composed arrangement, whereinpresenting the composed arrangement includes playing audio.
 7. Themethod of claim 1, wherein the composition information is relative to asingle object.
 8. The method of claim 1, wherein the compositioninformation includes information for composing audio objects.
 9. Themethod of claim 8, wherein the composition information includesinformation for composing audio object within a set of speakers.
 10. Themethod of claim 1, wherein locally storing the at least one objectincludes storing the at least one object in a memory.
 11. The method ofclaim 10, wherein the memory is selected from the group consisting of acache memory, decoder buffer, and input buffer.
 12. The method of claim1, further comprising: removing the at least one audiovisual/videoobject from local storage prior to its initial presentation time.
 13. Anapparatus for processing object-based data, comprising: (a) a receivercircuit configured to receive in a data bit stream at least one objectand composition information for the object; (b) local storage configuredto store the at least one object; (c) a composer circuit configured toprocess the received composition information to compose an arrangementusing the at least one object; and (d) an arrangement generating deviceconfigured to generate the composed arrangement.
 14. The apparatus ofclaim 13, further comprising: an output device configured to output thecomposed arrangement.
 15. The apparatus of claim 13, wherein the outputdevice is configured to present the arrangement.
 16. The apparatus ofclaim 15, wherein the output device is further configured to present thearrangement by playing audio.
 17. The apparatus of claim 13, wherein thecomposer circuit is configured to process composition informationrelated to an audio object.
 18. The apparatus of claim 13, wherein thecomposer circuit is configured to process composition informationincluding information for composing audio object within a set ofspeakers.